package _11_整理题目._0_工具集;

import org.junit.Test;

import java.util.*;
import java.util.stream.Collectors;


public class _04_常用方法_集合 {
    
    /**
     * Map 
     * 
     * map.put(key, val)        添加 key/value，或 更新 value     增，改
     * map.get(key)             获取 value                       查
     * map.remove(key)          删除 key/value                   删
     *
     * map.getOrDefault(k, 0);
     * map.containsKey(key)
     * map.size()
     * map.isEmpty()
     * 
     */
    @Test
    public void MapTest() {
        Map<Integer, Integer> map = new HashMap<>();
        map.put(1, 1);
        map.put(2, 2);
        System.out.println(map.get(1));
        System.out.println(map.get(2));
        map.remove(1);
        System.out.println(map.get(1));
        System.out.println(map.get(2));
        map.put(2, 3);
        System.out.println(map.get(2));

    }
    
    /**
     * List.remove(int index)   注意 List<Integer> list.remove(1)  1 是index 不是 obj
     * List.remove(Object obj)
     * List.set(index, obj)
     */
    @Test
    public void ListTest() {
        List<Integer> list = new ArrayList<>();
        list.isEmpty();
        list.size();
    }
    
    /**
     *
     * 如果list是 5 7 2 6 8 1 4
     * 1、升序：list： 1 2 4 5 6 7 8
     * Collections.sort(list)
     * 2、降序：list:8 7 6 5 4 2 1
     * Collections.sort(list，Collections.reverseOrder())
     * 3、逆序；list：4 1 8 6 2 7 5
     * Collections.reverse(list)
     *
     */
    
    
    /**
     * 复制数组：
     * 不返回新数组     void    System.arraycopy(src, srcPos, dest, destPos, length)
     * 返回新数组       []      Arrays.copyOfRange(src, from, to)    [)
     * 返回新数组       []      Arrays.copyOf(src, length)           0)
     *
     * 复制数组：int[] dp = Arrays.copyOf(nums, n);
     * 填充数组：Arrays.fill(arr, 1)
     * 打印数组：System.out.println(Arrays.toString(nums));
     * 数组求和：int total = Arrays.stream(nums).sum();
     *
     */
    @Test
    public void ArraysTest() {
        char[] aa = "abcdeftg".toCharArray();
        System.out.println(new String(Arrays.copyOfRange(aa,2,5)));

        int[] array = {1,2,4,5,6};
        int[] dest = new int[10];
        System.arraycopy(array, 0, dest, 1, 3);
        System.out.println(Arrays.toString(dest));

        int[] ans = Arrays.copyOf(array, 3);
        System.out.println(ans.length);
        System.out.println(Arrays.toString(ans));
    }

    /**
     * Steam()
     *
     */
    @Test
    public void steamTest() {

    }

}
